CWMP (CPE WAN Management Protocol) is developed in Broadband Forum to remotely manage CPE (Customer Premises Equipment) such as DSL (Digital Subscriber Line) modems and broadband routers. In CWMP, an ACS (Auto Configuration Server) is used to perform an auto-configuration of CPE. For example, when new firmware is released, the ACS notifies the CPE to upgrade the firmware.
FIG. 1 shows a conceptual diagram of upgrading firmware in CPE. CPE typically has two flash banks: an active bank and a passive bank. Each flash bank has a standalone OS (Operating System) and one or more applications. The CPE can boot from any bank. The active bank is a flash bank from which the CPE reboots. The passive bank is a standby flash bank.
In FIG. 1, it is assumed that the existing firmware (FIRMWARE1) is to be upgraded to new firmware (FIRMWARE3). When the new firmware (FIRMWARE3) is released, the CPE (also referred to as a “CWMP client”) receives a Firmware Image Download RPC (Remote Procedure Call) from the ACS (STEP S1), as an upgrade command to download a new firmware image (IMG3) corresponding to the new firmware (FIRMWARE3).
Upon receiving the Firmware Image Download RPC, the upgrade daemon of the CPE deletes the old firmware image (IMG2) from the passive bank (STEP S2). It should be noted that a common portion (IMG1) between the existing firmware (FIRMWARE1) and the new firmware (FIRMWARE3) may not be upgraded.
Then, the upgrade daemon downloads the new firmware image (IMG3) and writes the downloaded image (IMG3) into the passive bank (STEP S3).
When flashing is completed, switchover is performed to make the new firmware (FIRMWARE3) active (STEP S4). Specifically, a partition table in the CPE is updated to accomplish switchover between the active bank and the passive bank and a reboot is initiated by the upgrade daemon to load the new firmware image (IMG3) and any other firmware image (IMG1) into a RAM (Random Access Memory) such as an SDRAM (Synchronous Dynamic RAM) and run the new firmware (FIRMWARE3) from the RAM.
The completion (success or failure) of the firmware upgrade is indicated to the ACS by means of a TransferComplete message (STEP S5).
According to the procedures of upgrading firmware in CPE shown in FIG. 1, some services may be interrupted or stopped because of rebooting. In addition, the configurations of the current bank may be lost after switchover. Furthermore, applying the current bank configurations to the new firmware has a risk of causing the CPE to work abnormally, even causing a crash. From the viewpoint of the ACS, the ACS gets the TransferComplete message after a long time.
In view of the problems in the procedures of upgrading firmware in CPE, it is a general object of the present invention to reduce the risk of causing the CPE to work abnormally upon firmware upgrade.